formulare vs. MDI resp. new framework
Otázka od: martin
17. 11. 2004 22:15
Zdravim Vas,
chcel by som nejak sikovne vyriesit pracu s formularmi v mojej
aplikacii.
Terajsi stav:
- cca 50 formularov, vacsinou modalne
- uplne standarna situacia bez MDI
Buduci stav (hypoteza)
- v lavej casti (cca 10%lavej casti mainformu) hlavneho formulara bude panel,
podobny ako je napr. v XPckach v exploreri, skratka budu tam tlacitka ktore
budu zobrazovat
resp. vytvarat nejake formulare
- formulare sa budu zobrazovat v ostatnej casti mainform teda v
zvysnych 90%
- kazde stlacenie dalsieho tlacitka otvara prislusny form a povodny
zatvara
- stale je otvoreny iba jeden form (v tej pravej casti)
- samozrejme z toho formu mozem otvarat dalsie, ale iba vyhradne
modalne
A tu si neviem rady ako to urobit.
Uvazoval som tak,
- ze vytvorim lavy panel(10%) pravy panel(90%)
- no a do praveho panelu NEJAK, NEVIEM AKO vlozim vytvarany form.
- nechcem to riesit ako MDI
- tie formu v pravej casti nebudu mat titulok, ani tlacitka
close,minimize,maximize - mali by sa prisposobovat velkosti hlavneho
formu
Poradte prosim ako na to ...
--
Martin
D7Pro,JCL,JVCL ...
Odpovedá: Vlko II.
17. 11. 2004 23:31
On Wed, 17 Nov 2004 22:15:24 +0100, martin <matrix@inmail.cz> wrote:
> - no a do praveho panelu NEJAK, NEVIEM AKO vlozim vytvarany form.
Cesta je cez Frame. Co je vlastne tebou vytvorena komponenta s
rozmiestnenim
vsetkych prvkov. U nas vo frameworku to funguje tak, ze je standardne menu,
ikonove menu napravo a panel roztiahnuty na ostatok ktoreho sa dynamicky
vklada
aktualne potrebny frame. Vsetky browse su framy, a mozu sa pripadne flozit
do
formulara, alebo ako detail do dalsieho formulara.
Myslim si, ze vsade to bude podobne, btw nieco podobne je aj vo Net
frameworku,
cize je celkom plus zvyknut si to pouzivat.
vlko
--
--------------
mail: vlko_@pobox.sk
web: http://vlko.zilina.net
Odpovedá: Ing. Petr Sikola
18. 11. 2004 8:20
no, my to mame presne tak, jak ty popisujes, ze bys to chtel mit, delame
to takhle:
v hlavnim formu:
if (FCurrForm <> nil) then
begin
FCurrForm.Close;
FCurrForm.free;
end;
FCurrForm := nil;
FCurrForm := TEditacniForm.create(nil);
if FCurrForm <> nil then
begin
FCurrForm.BorderStyle := bsNone;
FCurrForm.Parent := Panel90;
FCurrForm.Align := alClient;
FCurrForm.Visible := true;
FCurrForm.show;
end;
TEditacniForm muzeme pak pouzit primo do okna v hlavnim formu (viz kod
nahore) i jako samostatnej form (klasicky create,showmodal,free)
akorat jedinej problem, ktery jeste nemame vyresenej je ten, ze nam
nefunguji hotkey v tom vkladanym formu (hlavni form je sezere driv) -
poradite nekdo jak to rozchodit (v podstate predat stisk hotkeye z
jednoho formu do druhyho)?
Mame to v D5
Petr Sikola
> A tu si neviem rady ako to urobit.
> Uvazoval som tak,
> - ze vytvorim lavy panel(10%) pravy panel(90%)
> - no a do praveho panelu NEJAK, NEVIEM AKO vlozim vytvarany form.
> - nechcem to riesit ako MDI
> - tie formu v pravej casti nebudu mat titulok, ani tlacitka
> close,minimize,maximize - mali by sa prisposobovat velkosti hlavneho
> formu
> Martin
> D7Pro,JCL,JVCL ...
Odpovedá: Tomas Bradle
19. 11. 2004 16:54
Ja to delam taky tak.
Jak uvadel nekdo v jinem prispevku - reseni s framy mam ty nejhorsi
zkusenosti (teda v D5).
Nevim, ktere hotkeye mas na mysli, ty ktere jsou z hlavniho menu odchyti ten
mainform a musi se aktualnimu oknu predat v nejake procedure, pokud chci
nejake "lokalni" hotkeye, tak to resim pomoci popup menu, ktere priradim v
TFORM.POPUPMENU toho subokna. Pokud nechci, aby se to popup menu
zobrazovalo, tak dam vsecky polozky VISIBLE:=false.
Tomas Bradle
t.bradle@sanet.cz
t.bradle@worldonline.cz
----- Original Message -----
From: "Ing. Petr Sikola" <developer@efg.cz>
>
> TEditacniForm muzeme pak pouzit primo do okna v hlavnim formu (viz kod
> nahore) i jako samostatnej form (klasicky create,showmodal,free)
>
> akorat jedinej problem, ktery jeste nemame vyresenej je ten, ze nam
> nefunguji hotkey v tom vkladanym formu (hlavni form je sezere driv) -
> poradite nekdo jak to rozchodit (v podstate predat stisk hotkeye z
> jednoho formu do druhyho)?
>
> Mame to v D5
>
> Petr Sikola
Odpovedá: Jan Novak
20. 11. 2004 14:12
> - stale je otvoreny iba jeden form (v tej pravej casti)
Co tak mit na cely form roztazeny (t.j. vsechny Anchor na true)
TPageControl s TabPosition nastavenym na tpLeft ? Sirka ousek se pak
ale nastavuje neobvyklym TabHeight a aby Caption nebyly nalezato,
musis je v OnDrawTab malovat 'rucne', t.j. pomoci
Control.Canvas.TextOut.